package org.jeecg.modules.hotel.requisition.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 调退宿申请
 * @Author: jeecg-boot
 * @Date:   2021-05-04
 * @Version: V1.0
 */
@Data
@TableName("lwgy_hotel_requisition")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="lwgy_hotel_requisition对象", description="事务申请")
public class  LwgyHotelRequisition implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;

    /**姓名*/
    @Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名")
    private String studentName;
	/**用户id*/
    @ApiModelProperty(value = "用户id")
    private String studentId;
    /**学号*/
    @Excel(name = "学号", width = 15)
    @ApiModelProperty(value = "学号")
    private String studentNumber;
    /**
     * 推送人用户名
     */
    @ApiModelProperty(value = "推送人")
	private String fromUser;
    /***
     * 接受人用户名
     */
    @ApiModelProperty(value = "推给谁")
	private String toUser;

	/**性别*/
    @Excel(name = "性别", width = 15, dicCode = "sex")
    @Dict(dicCode = "sex")
    @ApiModelProperty(value = "性别")
    private String roomsex;

    /**校区*/
    @Excel(name = "校区", width = 15,dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @Dict(dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @ApiModelProperty(value = "校区")
    private String studentCampus;
    /**院系*/
    @Excel(name = "院系", width = 15,dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @Dict(dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @ApiModelProperty(value = "院系")
    private String studentCollege;
    /**专业*/
    @Excel(name = "专业", width = 15,dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @Dict(dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @ApiModelProperty(value = "专业")
    private String studentMajor;
    /**班级*/
    @Excel(name = "班级", width = 15,dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @Dict(dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @ApiModelProperty(value = "班级")
    private String studentClass;
    /**年级*/
    @Excel(name = "年级", width = 15,dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    @Dict(dictTable = "lwgy_base_school",dicCode = "id",dicText = "name")
    private String studentYear;

    /**校区*/
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "校区")
    private String campusId;
    /**楼宇*/
    @Excel(name = "楼宇", width = 15,dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "楼宇")
    private String buildingId;
    /**单元*/
    @Excel(name = "单元", width = 15,dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "单元")
    private String unitId;
    /**楼层*/
    @Excel(name = "楼层", width = 15,dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "楼层")
    private String layerId;
    /**房间*/
    @Excel(name = "房间", width = 15,dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "房间")
    private String roomId;
	/**事务分类*/
	@Excel(name = "事务分类", width = 15,dicCode = "hotel_stu_behavior")
	@Dict(dicCode = "hotel_stu_behavior")
    @ApiModelProperty(value = "事务分类")
    private String behavioral;
	/**原因*/
	@Excel(name = "原因", width = 15)
    @ApiModelProperty(value = "原因")
    private String reason;
	/**申请时间*/
    @Excel(name = "申请时间", width = 15,format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "申请时间")
    private Date createTime;
	/**处理状态*/
	@Excel(name = "处理状态", width = 15,dicCode = "processing_state")
    @Dict(dicCode = "processing_state")
    @ApiModelProperty(value = "处理状态")
    private String processingState;
	/**处理结果*/
	@Dict(dicCode = "hotel_his_state")
	@Excel(name = "处理结果", width = 15,dicCode = "hotel_his_state")
    @ApiModelProperty(value = "处理结果")
    private String processingResult;

	/** 回执*/
    @Excel(name = "处理回执", width = 15)
    @ApiModelProperty(value = "处理回执")
	private String refuseReason;

    @ApiModelProperty(value = "调整后房间")
    @TableField(exist = false)
    private String afterBed;

    @ApiModelProperty(value = "调整后房间")
    @TableField(exist = false)
    private String beforeBed;

    /**3：学生提交 2：辅导员提交  1：管理员已经审核完毕 0：驳回申请 */
    @ApiModelProperty(value = "审核流程")
    private String auditProcess;

    /**是否有效*/
    @Excel(name = "是否有效", width = 15,dicCode = "del_flag")
    @ApiModelProperty(value = "是否有效")
    private String delFlag;

    @ApiModelProperty(value = "管理员")
    @TableField(exist = false)
    private String adminName;

    @TableField(exist = false)
    private String selections;

    /**楼宇*/
    @TableField(exist = false)
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "楼宇")
    private String oldBuildId;

    /**房间*/
    @TableField(exist = false)
    @Dict(dictTable = "lwgy_base_apartment", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "房间")
    private String oldRoomId;

    /**标记床位状态，0，正常状态，1假期状态*/
    @TableField(exist = false)
    private String status;

    /**假期学生id*/
    @TableField(exist = false)
    private String holidayStudentId;

    /**床位名*/
    private String name;

    /**留校开始时间*/
    @Excel(name = "留校开始时间", width = 15)
    @ApiModelProperty(value = "留校开始时间")
    private String stayStartTime;
    /**留校结束时间*/
    @Excel(name = "留校结束时间", width = 15)
    @ApiModelProperty(value = "留校结束时间")
    private String stayEndTime;
    /**学生联系方式*/
    @Excel(name = "学生联系方式", width = 15)
    @ApiModelProperty(value = "学生联系方式")
    private String phoneNumber;
    /**辅导员/导师姓名*/
    @Excel(name = "辅导员/导师姓名", width = 15)
    @ApiModelProperty(value = "辅导员/导师姓名")
    private String teacherName;
}
